package Service.Teacher;


import Entity.MsgAndEmail.Email;
import Entity.MyTableData;


public interface MsgAndEmailService {

    /**
     * 按关键字分页模糊查询公告
     *
     * @param queryKey 为%%时查询所有的  具体值模糊查询
     * @param offset   页面限制的数据条数大小
     * @param limit    第几条开始
     * @return MyTableData对象
     */
    MyTableData getAllMessage(String queryKey, Integer offset, Integer limit);


    /**
     * 根据编号和关键字分页模糊查询所有邮件
     *
     * @param queryKey 为%%时查询所有的  具体值模糊查询
     * @param offset   页面限制的数据条数大小
     * @param limit    第几条开始
     * @param NO       编号
     * @param type     1 查询收件箱  2 查询发件箱
     * @return Email列表
     */
    MyTableData getAllEmail(String queryKey, Integer offset, Integer limit, String NO, Integer type);


    /**
     * 写一封邮件
     *
     * @param email 要发送的邮件的对象
     * @return 1001 发送成功 ， 1002 要发送的对象不存在 . 1003 发送失败 1004 邮箱授权码错误
     */
    Integer writeEmail(Email email, Integer role);

    /**
     * 根据ID 修改邮箱的状态
     *
     * @param id 邮件的ID
     * @return 操作影响的行数
     */
    Boolean updateStateById(Integer id);


    /**
     * 用户更新邮箱
     *
     * @param no       用户的编号
     * @param newEmail 行的邮箱
     * @param role     1是学生 2是老师 3是管理员
     * @return true 成功  ， false 失败
     */
    Boolean updateUserEmail(String no, String newEmail, String role);

    /**
     * 用户更新邮箱
     *
     * @param no        用户的编号
     * @param emailCode 邮箱的授权码
     * @param role      1是学生 2是老师 3是管理员
     * @return true 成功  ， false 失败
     */
    Boolean updateEmailCode(String no, String emailCode, String role);
}
